Conditions et boucles
Les conditions
Il existe deux types de conditions en Go : if et switch.
La condition if
On utilisera simplement le mot clé if suivi de la condition pour déclarer une condition if. Il est également possible d'utiliser les mot clés else et else if pour déclarer des conditions supplémentaires.
if a == 1 {
// Si a est égal à 1
} else if a == 2 {
// Si a est égal à 2
} else {
// Sinon
}
Il est également possible de déclarer une variable dans la condition if avec l'affectation dynamique.
if a := 1; a == 1 {
// ...
}
La condition switch
On utilisera le mot clé switch suivi de l'expression à tester pour déclarer une condition switch, puis on déclarera les différents cas avec le mot clé case.
Le mot clé default permet de déclarer le cas par défaut si aucun des cas précédents n'est vérifié.
Par défaut, une condition switch ne teste que l'égalité :
switch expression {
case 1:
// Si expression est égal à 1
case 2:
// Si expression est égal à 2
default:
// Sinon
}
Mais il est également possible de tester d'autres conditions sans spécifier d'expression :
switch {
case a == 1:
// ...
case a == 2:
// ...
default:
// ...
}
Les boucles
En Go, le seul type de boucle existant est la boucle for. Il n'existe pas de boucle while et do while mais on peut les simuler avec une boucle for.
On peut utiliser le mot clé break pour sortir d'une boucle et le mot clé continue pour passer à l'itération suivante sans exécuter le reste du code de la boucle.
Créer une boucle
Pour créer une boucle for, on utilise le mot clé for.
La boucle la plus basique est la boucle for avec une condition et un incrément :
// Avec initialisation de variable
for i := 0; i < 10; i++ {
// ...
}
// Sans initialisation de variable
var i int
for ; i < 10; i++ {
// ...
}
Il est également possible de créer une boucle for sans condition et sans incrément : Auquel cas la boucle sera infinie et il faudra utiliser un break pour en sortir.
var i int
for {
i++
} // Boucle infinie
for {
if i == 10 {
break
}
i++
} // Boucle contrôlée avec un break
Pour finir, il est possible de créer une boucle for avec une condition seulement :
for i < 10 {
// ...
}